﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace KruskalAlgorithm
{
    class StackItemPrim
    {
        #region Member Variables
        List<Vertex> remainingVertices;
        Vertex currentMin;
        Vertex currentAdj;
        int currentAdjCost;
        List<Edge> currentEdges;
        List<Edge> LEdgesRetunPrim;
        Edge currentEdgePrim;
        public int stepNumber;
        #endregion

        #region Properties
        public List<Vertex> getRemainingVertices
        {
            get
            {
                return remainingVertices;
            }
        }
        public Vertex getCurrentMin
        {
            get
            {
                return currentMin;
            }
        }
        public Vertex getCurrentAdj
        {
            get
            {
                return currentAdj;
            }
        }
        public int getCurrentAdjCost
        {
            get
            {
                return currentAdjCost;
            }
        }
        public List<Edge> getCurrentEdges
        {
            get
            {
                return currentEdges;
            }
        }
        public List<Edge> getLEdgesRetunPrim
        {
            get
            {
                return LEdgesRetunPrim;
            }
        }
        public int getStepNumber
        {
            get
            {
                return stepNumber;
            }
        }
        public Edge getCurrentEdgePrim
        {
            get
            {
                return currentEdgePrim;
            }
        }
        #endregion

        public StackItemPrim(List<Vertex> remainingVertices, Vertex currentMin, Vertex currentAdj, int currentAdjCost, List<Edge> currentEdges, List<Edge> LEdgesRetunPrim, Edge currentEdgePrim, int stepNumber)
        {
	        this.remainingVertices = remainingVertices;
	        this.currentMin = currentMin;
	        this.currentAdj = currentAdj;
	        this.currentAdjCost = currentAdjCost;
	        this.currentEdges = currentEdges;
	        this.LEdgesRetunPrim = LEdgesRetunPrim;
	        this.currentEdgePrim = currentEdgePrim;
            this.stepNumber = stepNumber;
        }
    }
}
